package com.xbongbong.saas.domain.entity;

import com.xbongbong.paas.toolbox.wrap.Entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @author youli.chen
 * @version v1.0
 * @description: 呼叫中心团队实体类
 * @date 2019/2/14 10:09
 * @since v1.0
 */
@Setter
@Getter
@ToString
public class CallCenterTeamEntity extends Entity {
    public CallCenterTeamEntity() {
    }

    public CallCenterTeamEntity(String corpid, String orgId, Long depId, Long parentDepId, String depIdRouter, String teamId,
                                Integer moduleType, String name, String phoneVisibility) {
        this();
        this.corpid = corpid;
        this.orgId = orgId;
        this.depId = depId;
        this.parentDepId = parentDepId;
        this.depIdRouter = depIdRouter;
        this.teamId = teamId;
        this.moduleType = moduleType;
        this.name = name;
        this.phoneVisibility = phoneVisibility;
    }

    public CallCenterTeamEntity(String corpid, String orgId, Long depId, Long parentDepId, String depIdRouter, Integer moduleType) {
        this();
        this.corpid = corpid;
        this.orgId = orgId;
        this.depId = depId;
        this.parentDepId = parentDepId;
        this.depIdRouter = depIdRouter;
        this.moduleType = moduleType;
    }

    public CallCenterTeamEntity(String corpid, Long depId, Long parentDepId, String depIdRouter, Integer moduleType) {
        this();
        this.corpid = corpid;
        this.depId = depId;
        this.parentDepId = parentDepId;
        this.depIdRouter = depIdRouter;
        this.moduleType = moduleType;
    }

    public CallCenterTeamEntity(String corpid, String orgId, Long depId, Long parentDepId, String depIdRouter, String teamId,
                                String parentId, Integer moduleType, String name, String phoneVisibility) {
        this(corpid, orgId, depId, parentDepId, depIdRouter, teamId, moduleType, name, phoneVisibility);
        this.parentId = parentId;
    }

    /**
     * 主键
     */
    private Long id;
    /**
     * 公司ID
     */
    private String corpid;
    /**
     * 逍邦组织架构的部门ID
     */
    private Long depId;
    /**
     * 逍邦组织架构的部门的父部门ID
     */
    private Long parentDepId;
    /**
     * 逍邦组织架构的上层部门的路由，记录层级关系，例 |1|2|3|
     */
    private String depIdRouter;
    /**
     * 第三方话务中心方面维护的企业id
     */
    private String orgId;
    /**
     * 第三方话务中心方面维护的部门id
     */
    private String teamId;
    /**
     * 第三方话务中心方面维护的部门的父部门ID
     */
    private String parentId;
    /**
     * 微应用信息，参考AppStoreTypeEnum
     */
    private Integer moduleType;
    /**
     * 第三方话务中心方面维护的部门名称
     */
    private String name;
    /**
     * 号码是否对团队成员隐藏:PUBLIC:公开,PRIVATE:隐藏,MEMBER_PRIVATE:对团队管理员公开,普通坐席隐藏
     */
    private String phoneVisibility;
    /**
     * 团队备注
     */
    private String remark;
    /**
     * 可用坐席总数
     */
    private Integer maxAgentNum;
    /**
     * 创建时间
     */
    private Integer addTime;
    /**
     * 更新时间
     */
    private Integer updateTime;
    /**
     * 删除标记
     */
    private Integer del;

    /**
     * 非持久层字段
     * 是否拥有线路
     */
    private Boolean isPhoneLine;
}
